package model

import (
	"github.com/shopspring/decimal"
	"time"
)

var (
	Ordinary   = "ordinary"
	Fee        = "fee"
	Transfer   = "transfer"
	Management = "management"
	OpenCard   = "openCard"
)

// FxCardInfo  卡信息表
type FxCardInfo struct {
	ID         int64  `json:"id"` //  主键
	CardId     string `json:"card_id"`
	FirstName  string `json:"first_name"` //  持卡人姓
	LastName   string `json:"last_name"`  //  持卡人名字
	Email      string `json:"email"`      //  邮箱
	Reference  string `json:"reference"`  //  商户订单号
	State      string `json:"state"`      //  状态:active-可用,terminated-办理中,suspended-暂停
	Currency   string `json:"currency"`   //  币种
	CardNo     string `json:"card_no"`    //  卡号
	Balance    int64  `json:"balance"`    //  余额
	Expiration string `json:"expiration"` //  到期时间
	Account    string `json:"account"`    //  代理商帐号
}

// FxAddressInfo  账单地址表
type FxAddressInfo struct {
	ID      int64  `json:"id"`       //  主键
	CardId  string `json:"card_id"`  //  卡id
	Country string `json:"country"`  //  国家
	Street  string `json:"street"`   //  街道
	City    string `json:"city"`     //  城市
	State   string `json:"state"`    //  州
	ZipCode string `json:"zip_code"` //  邮编
}

// FxCardTrade  卡交易流水表
type FxCardTrade struct {
	ID          int64           `json:"id"`          //  主键
	TradeNo     string          `json:"trade_no"`    //交易流水号
	CardId      string          `json:"card_id"`     //  卡id
	CardNo      string          `json:"card_no"`     //  卡号
	TradeType   string          `json:"trade_type"`  //  交易类型:转账、消费、退款、手续费
	Amount      decimal.Decimal `json:"amount"`      //  交易金额
	Beneficiary string          `json:"beneficiary"` //  收款方
	State       string          `json:"state"`       //  交易状态：terminated-交易中,success-已成功,refuse-已拒绝
	TradeTime   time.Time       `json:"trade_time"`  //  交易时间
	Description string          `json:"description"` //  交易描述
	Reason      string          `json:"reason"`      //  拒绝原因
	Currency    string          `json:"currency"`    //  币种
}

// FxFreezeRecord  卡冻结记录表
type FxFreezeRecord struct {
	ID           int64  `json:"id"`            //  主键
	CardId       string `json:"card_id"`       //  卡id
	Account      string `json:"account"`       //  操作人帐号
	OperatorType string `json:"operator_type"` //  操作人类型 agent-代理商、admin-我们自己
	Operator     string `json:"operator"`      //  操作 active-解冻、suspended-冻结
}

// FxCardStateTransitions  修改卡状态订单中间表
type FxCardStateTransitions struct {
	ID              int64  `json:"id"`                //  主键
	CardId          string `json:"card_id"`           //  卡id
	SubmitState     string `json:"submit_state"`      //  状态:init-初始,success-成功,pending-办理中,fail-失败
	Reference       string `json:"reference"`         //  商户订单号
	CardTargetState string `json:"card_target_state"` //  变更状态
}

// FxCardTradeRecord  卡交易流水表
type FxCardTradeRecord struct {
	ID               int64  `json:"id"`                 //  主键
	RecordNo         string `json:"record_no"`          //  记录编号
	CardId           string `json:"card_id"`            //  卡id
	OccurTime        string `json:"occur_time"`         //  交易发生时间
	TransCurrency    string `json:"trans_currency"`     //  交易币种
	TransCurrencyAmt string `json:"trans_currency_amt"` //  交易金额
	LocalCurrency    string `json:"local_currency"`     //  卡币种
	LocalCurrencyAmt string `json:"local_currency_amt"` //  卡本币种交易金额
	RespCode         string `json:"resp_code"`          //
	RespCodeDesc     string `json:"resp_code_desc"`     //
	MerchantName     string `json:"merchant_name"`      //  商户名称
	CrossBoardType   string `json:"cross_board_type"`   //  跨境类型：0:境内，1:境外
	TransType        string `json:"trans_type"`         //  交易类型:auth-消费,refund-退款,reversal-冲正
	TransStatus      string `json:"trans_status"`       //  交易状态:approved-批准,declined-拒绝
}

// FxCardholder  持卡人信息
type FxCardholder struct {
	ID             int64  `json:"id"`               //  主键
	Account        string `json:"account"`          //  代理商帐号
	CardUserId     string `json:"card_user_id"`     //  持卡人id
	FirstName      string `json:"first_name"`       //  持卡人姓
	LastName       string `json:"last_name"`        //  持卡人名字
	MiddleName     string `json:"middle_name"`      //  中间名字
	Email          string `json:"email"`            //  邮箱
	MobilePreFix   string `json:"mobile_pre_fix"`   //  手机号前缀
	Mobile         string `json:"mobile"`           //  手机号
	BirthDate      string `json:"birth_date"`       //  出生日期
	CountryCode    string `json:"country_code"`     //  国家代码
	BillingState   string `json:"billing_state"`    //  账单省/州
	BillingCity    string `json:"billing_city"`     //  账单城市
	BillingAddress string `json:"billing_address"`  //  账单详细地址
	BillingZipCode string `json:"billing_zip_code"` //  账单地址的邮编
	Remark         string `json:"remark"`           //  备注
	HolderStatus   string `json:"holder_status"`    // 持人状态:0#禁用 1#启用 2#删除 3#处理中'
}

// FxCardSettlement  清算表
type FxCardSettlement struct {
	ID               int64  `json:"id"`                 //  主键
	RecordNo         string `json:"record_no"`          //  记录编号
	CardId           string `json:"card_id"`            //  卡id
	SettleDate       string `json:"settle_date"`        //  账单日期
	TransCurrency    string `json:"trans_currency"`     //  交易币种
	TransCurrencyAmt string `json:"trans_currency_amt"` //  交易金额
	BillCurrency     string `json:"bill_currency"`      //  账单币种
	BillCurrencyAmt  string `json:"bill_currency_amt"`  //  账单金额
	ApprovalCode     string `json:"approval_code"`      //  授权码
	IsCredit         string `json:"is_credit"`          //  1:收(退款) 0:付(消费)
	MerchantName     string `json:"merchant_name"`      //  商户名称
	OriginRecordNo   string `json:"origin_record_no"`   //  原记录编号
	CreatedAt        string `json:"created_at"`
}
